// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.product.ingredients;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.ProductIngredients;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(ProductIngredients.class)
@Setter
@Getter
public class ProductIngredientsSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "ProductIngredients".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    map.put("accessoriesId", "a");
    map.put("productId", "p");
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();

    return map;
  }

  /**
   * 所属辅料管理
   */
  private Long accessoriesId;

  /**
   * 所属辅料管理 比较(eq)
   */
  private Long accessoriesIdEq;
  /**
   * 所属辅料管理 比较(neq)
   */
  private Long accessoriesIdNeq;
  /**
   * 所属辅料管理 比较(gt)
   */
  private Long accessoriesIdGt;
  /**
   * 所属辅料管理 比较(gte)
   */
  private Long accessoriesIdGte;
  /**
   * 所属辅料管理 比较(lt)
   */
  private Long accessoriesIdLt;
  /**
   * 所属辅料管理 比较(lte)
   */
  private Long accessoriesIdLte;
  /**
   * 所属辅料管理 比较(contains)
   */
  private Long accessoriesIdContains;
  /**
   * 所属辅料管理 比较(notcontains)
   */
  private Long accessoriesIdNotcontains;
  /**
   * 所属辅料管理 比较(startswith)
   */
  private Long accessoriesIdStartswith;
  /**
   * 所属辅料管理 比较(endswith)
   */
  private Long accessoriesIdEndswith;
  /**
   * 所属辅料管理 比较(isnull)
   */
  private Boolean accessoriesIdIsnull;
  /**
   * 所属辅料管理 比较(isnotnull)
   */
  private Boolean accessoriesIdIsnotnull;
  /**
   * 所属辅料管理的品名 比较(eq)
   */
  private String accessoriesIdNameEq;
  /**
   * 所属辅料管理的品名 比较(neq)
   */
  private String accessoriesIdNameNeq;
  /**
   * 所属辅料管理的品名 比较(gt)
   */
  private String accessoriesIdNameGt;
  /**
   * 所属辅料管理的品名 比较(gte)
   */
  private String accessoriesIdNameGte;
  /**
   * 所属辅料管理的品名 比较(lt)
   */
  private String accessoriesIdNameLt;
  /**
   * 所属辅料管理的品名 比较(lte)
   */
  private String accessoriesIdNameLte;
  /**
   * 所属辅料管理的品名 比较(contains)
   */
  private String accessoriesIdNameContains;
  /**
   * 所属辅料管理的品名 比较(notcontains)
   */
  private String accessoriesIdNameNotcontains;
  /**
   * 所属辅料管理的品名 比较(startswith)
   */
  private String accessoriesIdNameStartswith;
  /**
   * 所属辅料管理的品名 比较(endswith)
   */
  private String accessoriesIdNameEndswith;
  /**
   * 所属辅料管理的品名 比较(isnull)
   */
  private Boolean accessoriesIdNameIsnull;
  /**
   * 所属辅料管理的品名 比较(isnotnull)
   */
  private Boolean accessoriesIdNameIsnotnull;

  /**
   * 所属辅料管理(范围搜索)
   */
  private List<Long> accessoriesIdInList;

  /**
   * 所属产品
   */
  private Long productId;

  /**
   * 所属产品 比较(eq)
   */
  private Long productIdEq;
  /**
   * 所属产品 比较(neq)
   */
  private Long productIdNeq;
  /**
   * 所属产品 比较(gt)
   */
  private Long productIdGt;
  /**
   * 所属产品 比较(gte)
   */
  private Long productIdGte;
  /**
   * 所属产品 比较(lt)
   */
  private Long productIdLt;
  /**
   * 所属产品 比较(lte)
   */
  private Long productIdLte;
  /**
   * 所属产品 比较(contains)
   */
  private Long productIdContains;
  /**
   * 所属产品 比较(notcontains)
   */
  private Long productIdNotcontains;
  /**
   * 所属产品 比较(startswith)
   */
  private Long productIdStartswith;
  /**
   * 所属产品 比较(endswith)
   */
  private Long productIdEndswith;
  /**
   * 所属产品 比较(isnull)
   */
  private Boolean productIdIsnull;
  /**
   * 所属产品 比较(isnotnull)
   */
  private Boolean productIdIsnotnull;
  /**
   * 所属产品的品名 比较(eq)
   */
  private String productIdNameEq;
  /**
   * 所属产品的品名 比较(neq)
   */
  private String productIdNameNeq;
  /**
   * 所属产品的品名 比较(gt)
   */
  private String productIdNameGt;
  /**
   * 所属产品的品名 比较(gte)
   */
  private String productIdNameGte;
  /**
   * 所属产品的品名 比较(lt)
   */
  private String productIdNameLt;
  /**
   * 所属产品的品名 比较(lte)
   */
  private String productIdNameLte;
  /**
   * 所属产品的品名 比较(contains)
   */
  private String productIdNameContains;
  /**
   * 所属产品的品名 比较(notcontains)
   */
  private String productIdNameNotcontains;
  /**
   * 所属产品的品名 比较(startswith)
   */
  private String productIdNameStartswith;
  /**
   * 所属产品的品名 比较(endswith)
   */
  private String productIdNameEndswith;
  /**
   * 所属产品的品名 比较(isnull)
   */
  private Boolean productIdNameIsnull;
  /**
   * 所属产品的品名 比较(isnotnull)
   */
  private Boolean productIdNameIsnotnull;

  /**
   * 所属产品(范围搜索)
   */
  private List<Long> productIdInList;

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 是否有 产品图片
   */
  private Boolean picUrl;

  /**
   * 产品SKU(模糊搜索)
   */
  private String productSku;

  /**
   * 产品SKU 比较(eq)
   */
  private String productSkuEq;
  /**
   * 产品SKU 比较(neq)
   */
  private String productSkuNeq;
  /**
   * 产品SKU 比较(gt)
   */
  private String productSkuGt;
  /**
   * 产品SKU 比较(gte)
   */
  private String productSkuGte;
  /**
   * 产品SKU 比较(lt)
   */
  private String productSkuLt;
  /**
   * 产品SKU 比较(lte)
   */
  private String productSkuLte;
  /**
   * 产品SKU 比较(contains)
   */
  private String productSkuContains;
  /**
   * 产品SKU 比较(notcontains)
   */
  private String productSkuNotcontains;
  /**
   * 产品SKU 比较(startswith)
   */
  private String productSkuStartswith;
  /**
   * 产品SKU 比较(endswith)
   */
  private String productSkuEndswith;
  /**
   * 产品SKU 比较(isnull)
   */
  private Boolean productSkuIsnull;
  /**
   * 产品SKU 比较(isnotnull)
   */
  private Boolean productSkuIsnotnull;

  /**
   * 产品SKU(精确搜索)
   */
  private List<String> productSkuInList;

  /**
   * 产品名称(模糊搜索)
   */
  private String productName;

  /**
   * 产品名称 比较(eq)
   */
  private String productNameEq;
  /**
   * 产品名称 比较(neq)
   */
  private String productNameNeq;
  /**
   * 产品名称 比较(gt)
   */
  private String productNameGt;
  /**
   * 产品名称 比较(gte)
   */
  private String productNameGte;
  /**
   * 产品名称 比较(lt)
   */
  private String productNameLt;
  /**
   * 产品名称 比较(lte)
   */
  private String productNameLte;
  /**
   * 产品名称 比较(contains)
   */
  private String productNameContains;
  /**
   * 产品名称 比较(notcontains)
   */
  private String productNameNotcontains;
  /**
   * 产品名称 比较(startswith)
   */
  private String productNameStartswith;
  /**
   * 产品名称 比较(endswith)
   */
  private String productNameEndswith;
  /**
   * 产品名称 比较(isnull)
   */
  private Boolean productNameIsnull;
  /**
   * 产品名称 比较(isnotnull)
   */
  private Boolean productNameIsnotnull;

  /**
   * 产品名称(精确搜索)
   */
  private List<String> productNameInList;

  /**
   * 辅料名称(模糊搜索)
   */
  private String accessoriesName;

  /**
   * 辅料名称 比较(eq)
   */
  private String accessoriesNameEq;
  /**
   * 辅料名称 比较(neq)
   */
  private String accessoriesNameNeq;
  /**
   * 辅料名称 比较(gt)
   */
  private String accessoriesNameGt;
  /**
   * 辅料名称 比较(gte)
   */
  private String accessoriesNameGte;
  /**
   * 辅料名称 比较(lt)
   */
  private String accessoriesNameLt;
  /**
   * 辅料名称 比较(lte)
   */
  private String accessoriesNameLte;
  /**
   * 辅料名称 比较(contains)
   */
  private String accessoriesNameContains;
  /**
   * 辅料名称 比较(notcontains)
   */
  private String accessoriesNameNotcontains;
  /**
   * 辅料名称 比较(startswith)
   */
  private String accessoriesNameStartswith;
  /**
   * 辅料名称 比较(endswith)
   */
  private String accessoriesNameEndswith;
  /**
   * 辅料名称 比较(isnull)
   */
  private Boolean accessoriesNameIsnull;
  /**
   * 辅料名称 比较(isnotnull)
   */
  private Boolean accessoriesNameIsnotnull;

  /**
   * 辅料名称(精确搜索)
   */
  private List<String> accessoriesNameInList;

  /**
   * 辅料Sku(模糊搜索)
   */
  private String accessoriesSku;

  /**
   * 辅料Sku 比较(eq)
   */
  private String accessoriesSkuEq;
  /**
   * 辅料Sku 比较(neq)
   */
  private String accessoriesSkuNeq;
  /**
   * 辅料Sku 比较(gt)
   */
  private String accessoriesSkuGt;
  /**
   * 辅料Sku 比较(gte)
   */
  private String accessoriesSkuGte;
  /**
   * 辅料Sku 比较(lt)
   */
  private String accessoriesSkuLt;
  /**
   * 辅料Sku 比较(lte)
   */
  private String accessoriesSkuLte;
  /**
   * 辅料Sku 比较(contains)
   */
  private String accessoriesSkuContains;
  /**
   * 辅料Sku 比较(notcontains)
   */
  private String accessoriesSkuNotcontains;
  /**
   * 辅料Sku 比较(startswith)
   */
  private String accessoriesSkuStartswith;
  /**
   * 辅料Sku 比较(endswith)
   */
  private String accessoriesSkuEndswith;
  /**
   * 辅料Sku 比较(isnull)
   */
  private Boolean accessoriesSkuIsnull;
  /**
   * 辅料Sku 比较(isnotnull)
   */
  private Boolean accessoriesSkuIsnotnull;

  /**
   * 辅料Sku(精确搜索)
   */
  private List<String> accessoriesSkuInList;

  /**
   * 单位成本
   */
  private java.math.BigDecimal purchaseCost;

  /**
   * 最小单位成本
   */
  private java.math.BigDecimal purchaseCostMin;

  /**
   * 最大单位成本
   */
  private java.math.BigDecimal purchaseCostMax;

  /**
   * 单位成本 比较(eq)
   */
  private java.math.BigDecimal purchaseCostEq;
  /**
   * 单位成本 比较(neq)
   */
  private java.math.BigDecimal purchaseCostNeq;
  /**
   * 单位成本 比较(gt)
   */
  private java.math.BigDecimal purchaseCostGt;
  /**
   * 单位成本 比较(gte)
   */
  private java.math.BigDecimal purchaseCostGte;
  /**
   * 单位成本 比较(lt)
   */
  private java.math.BigDecimal purchaseCostLt;
  /**
   * 单位成本 比较(lte)
   */
  private java.math.BigDecimal purchaseCostLte;
  /**
   * 单位成本 比较(contains)
   */
  private java.math.BigDecimal purchaseCostContains;
  /**
   * 单位成本 比较(notcontains)
   */
  private java.math.BigDecimal purchaseCostNotcontains;
  /**
   * 单位成本 比较(startswith)
   */
  private java.math.BigDecimal purchaseCostStartswith;
  /**
   * 单位成本 比较(endswith)
   */
  private java.math.BigDecimal purchaseCostEndswith;
  /**
   * 单位成本 比较(isnull)
   */
  private Boolean purchaseCostIsnull;
  /**
   * 单位成本 比较(isnotnull)
   */
  private Boolean purchaseCostIsnotnull;

  /**
   * 主料数量
   */
  private Integer accessoriesQuantity;

  /**
   * 最小主料数量
   */
  private Integer accessoriesQuantityMin;

  /**
   * 最大主料数量
   */
  private Integer accessoriesQuantityMax;

  /**
   * 主料数量 比较(eq)
   */
  private Integer accessoriesQuantityEq;
  /**
   * 主料数量 比较(neq)
   */
  private Integer accessoriesQuantityNeq;
  /**
   * 主料数量 比较(gt)
   */
  private Integer accessoriesQuantityGt;
  /**
   * 主料数量 比较(gte)
   */
  private Integer accessoriesQuantityGte;
  /**
   * 主料数量 比较(lt)
   */
  private Integer accessoriesQuantityLt;
  /**
   * 主料数量 比较(lte)
   */
  private Integer accessoriesQuantityLte;
  /**
   * 主料数量 比较(contains)
   */
  private Integer accessoriesQuantityContains;
  /**
   * 主料数量 比较(notcontains)
   */
  private Integer accessoriesQuantityNotcontains;
  /**
   * 主料数量 比较(startswith)
   */
  private Integer accessoriesQuantityStartswith;
  /**
   * 主料数量 比较(endswith)
   */
  private Integer accessoriesQuantityEndswith;
  /**
   * 主料数量 比较(isnull)
   */
  private Boolean accessoriesQuantityIsnull;
  /**
   * 主料数量 比较(isnotnull)
   */
  private Boolean accessoriesQuantityIsnotnull;

  /**
   * 辅料数量
   */
  private Integer producQuantity;

  /**
   * 最小辅料数量
   */
  private Integer producQuantityMin;

  /**
   * 最大辅料数量
   */
  private Integer producQuantityMax;

  /**
   * 辅料数量 比较(eq)
   */
  private Integer producQuantityEq;
  /**
   * 辅料数量 比较(neq)
   */
  private Integer producQuantityNeq;
  /**
   * 辅料数量 比较(gt)
   */
  private Integer producQuantityGt;
  /**
   * 辅料数量 比较(gte)
   */
  private Integer producQuantityGte;
  /**
   * 辅料数量 比较(lt)
   */
  private Integer producQuantityLt;
  /**
   * 辅料数量 比较(lte)
   */
  private Integer producQuantityLte;
  /**
   * 辅料数量 比较(contains)
   */
  private Integer producQuantityContains;
  /**
   * 辅料数量 比较(notcontains)
   */
  private Integer producQuantityNotcontains;
  /**
   * 辅料数量 比较(startswith)
   */
  private Integer producQuantityStartswith;
  /**
   * 辅料数量 比较(endswith)
   */
  private Integer producQuantityEndswith;
  /**
   * 辅料数量 比较(isnull)
   */
  private Boolean producQuantityIsnull;
  /**
   * 辅料数量 比较(isnotnull)
   */
  private Boolean producQuantityIsnotnull;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 备注(模糊搜索)
   */
  private String remark;

  /**
   * 备注 比较(eq)
   */
  private String remarkEq;
  /**
   * 备注 比较(neq)
   */
  private String remarkNeq;
  /**
   * 备注 比较(gt)
   */
  private String remarkGt;
  /**
   * 备注 比较(gte)
   */
  private String remarkGte;
  /**
   * 备注 比较(lt)
   */
  private String remarkLt;
  /**
   * 备注 比较(lte)
   */
  private String remarkLte;
  /**
   * 备注 比较(contains)
   */
  private String remarkContains;
  /**
   * 备注 比较(notcontains)
   */
  private String remarkNotcontains;
  /**
   * 备注 比较(startswith)
   */
  private String remarkStartswith;
  /**
   * 备注 比较(endswith)
   */
  private String remarkEndswith;
  /**
   * 备注 比较(isnull)
   */
  private Boolean remarkIsnull;
  /**
   * 备注 比较(isnotnull)
   */
  private Boolean remarkIsnotnull;

  /**
   * 备注(精确搜索)
   */
  private List<String> remarkInList;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
